#ifndef _MUTEX_H_
#define _MUTEX_H_

#include <glib.h>
#include "thread.h"

// /!\ 3 listes : prêt, bloqué, mort
typedef struct mutex {
  thread_t owner;
  GList* blckd_threads;
} mutex_t;

// initialiser le mutex
int mutex_init(mutex_t * mut);

// verrouiller un mutex 
int mutex_lock(mutex_t * mut);

// dévérouiller un mutex
int mutex_unlock(mutex_t * mut);

#endif /* _MUTEX_H_ */
